Concurrent web based multi-tasks support for computer system

ABSTRACT

The traditional web based computing system did no support user space multitasking, therefore, if a task is submitted by a user from a web browser window via a user interface (“UI”), the user has to wait the task to be completed before the user can submit another task. Thus the web browser window will experience being blocked or hanged and the user can not do anything but wait. A method is disclosed herein for controlling each user initiated task to be run in background of the web based computing system for solving such problem.

CROSS-REFERENCES TO RELATED APPLICATION(S)

This application is a continuation under 35 USC §120 of U.S. patent application Ser. No. 12/075,314, filed on Mar. 4, 2008, which in turn is a continuation of U.S. patent application Ser. No. 10/713,904, filed on Aug. 6, 2002, which is converted from U.S. provisional application No. 60/401,238, and now a U.S. Pat. No. 7,418,702. All of above disclosed applications are incorporated herein in their entireties for all purpose.

FIELD OF THE INVENTION

This application is related to web based multitasking support for a single computer and for a central controlled distributed scalable virtual machine (hereinafter “CCDSVM”) environment.

BACKGROUND OF THE INVENTION

A typical computer system provides a computer user work environment to end users, wherein the computer user work environment runs on top of a generic computer operating system. With this work environment, a user can login to the computer system and is allowed to access various computer resources with permission based on his or her permitted role. The user, for example, can perform various tasks such as configuring computer resources for disk drives, networks, file folders/directories on file systems, and others. The user is also allowed to perform tasks of running various computer applications. All of mentioned tasks are eventually executed by the computer operating system on the computer system, where the operating system further provides the results of tasks to the user. Specially, by operatively coupling to the generic computer operating system, the computer user work environment supports multiple concurrent users and provides each one of the concurrent users with ability of run multiple concurrent tasks (operations) after login the computer system.

The computer user work environment has evolved from paper tape & punch card environment, command line based user interactive environment on a native computer system to window based user interactive environment on a native system in the past. The present invention provides each one of the users a web-based computer user work (operating) environment running on top of a generic operating system for a single computer or multiple computers for allowing each user to access one or multiple computer systems through a conventional web-browser with web multitasking capability.

BRIEF DESCRIPTION OF THE DRAWINGS

the accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more examples of embodiments and, together with the description of example embodiments, serve to explain the principles and implementations of the embodiments.

In the drawings:

FIG. 1 illustrates an example of a simplified web based multi-tasks support in a simple environment.

FIG. 2 illustrates an example of a simplified web based multi-tasks support in a CCDSVM environment.

FIG. 3 illustrates an example of basic data flow between a web-console on a console host and the console supporting software of a control management environment.

FIG. 4 illustrates an example of an operation flow for processing a task in a CCDSVM environment.

FIG. 5 illustrates one embodiment of a user space task list, which represents an abstraction of data structure for controlling multiple simultaneous concurrent tasks and operations in the CCDSVM environment.

FIG. 6 illustrates a layered CCDSVM structure.

BRIEF DESCRIPTION OF THIS INVENTION

The traditional web server or other server (3 of FIG. 1) may support users from a web browser (8 of FIG. 1) on a computing device to access applications or contents provided by the server across a communication network via interactively perform and submit tasks, where each of the tasks could be finished in a short period of time and a response to the task could be quickly returned from the server. For example, a user might want checking the web server's status or getting the server's other information, etc. However, the traditional web server or other server do not support for web based multiple simultaneous concurrent tasks (operations) submitted from a same web-browser, especially the lack of supporting for multiple concurrent task is magnified if these tasks consumes large amount of time to be completed.

For example, creating a 60 GB file system on the server, or configuring a raid controller on that server (3 of FIG. 1) is such a time consuming task. Because such task often take a large amount of time to finish so that the task will hang and blocked in the web-console on a console host (1 of FIG. 1) to cause the browser window to freeze, as a result, no other tasks could be performed in parallel from the same web-console at the same time. In addition, traditional console supporting software (5 of FIG. 1) does not work for a more complicated environment such as in a CCDSVM environment illustrated in FIG. 2.

To solve these problems and effectively to support multiple simultaneous concurrent tasks in a web-console for both the simple and the CCDSVM environment, the console supporting software (5 of FIG. 1) needs to include additional control management software modules (4 of FIG. 2) and others. The control management software module 4 shall communicate and control all system units (3 of FIG. 2). Also, each of the system units (3 of FIG. 2) needs service software modules (8 of FIG. 2) to communicate with the control management software (4 of FIG. 2) of the console support software (6 of FIG. 2).

In addition, a user space task list illustrated in FIG. 5 could be used together with conventional or non-conventional locks to support all multiple simultaneous concurrent tasks and operations. With this invention, the multi-tasks support on the web-console in a simple environment shown in FIG. 1 has been viewed as a special case of such supporting in a CCDSVM environment shown in FIG. 2. The CCDSVM will be degenerated into a simple server environment if multiple system units 3 in FIG. 2 do not present.

These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures set forth below.

DETAILED DESCRIPTION OF THE INVENTION

The CCDSVM is configured for a control management station to control a group of computing systems and provide distributed services to at least one client system across Intranet, Internet as well as a LAN environment. The software components of the CCDSVM form a virtual operating environment.

A server can configure with and execute software modules for allowing a user via a web browser on a computing device (system) such as a desktop, laptop, server, PDA, or cell phone to access the server and performs tasks across a communication network. This type of web-browser on the computing device (system) is often referred as a web-console. With the CCDSVM, a permitted user from a web-console should be able to access and operate the entire CCDSVM.

To simplify the discussion, the term of thread and process are roughly used without differentiation between them in this invention regardless of the very restricted definition of the thread and process in computer science field. Here both thread and process are basically referred as a sequence of instructions based on a piece of program code, which starts to be executed by a computer system step by step and further to carry out a computer task.

Lock is a mechanism that allows a thread to look a computer resource for its own use and prevents other threads, which attempt to manipulate this same resource at the same time, from accessing to the same computer resource. There is conventional lock, which can be acquired and released by the same thread. The conventional lock mechanisms have used by most software developer crossing the software industry. The lock described in this invention may or may not be a conventional one. The non-conventional lock mechanisms created in this invention can be acquired by one thread and may be released by same thread or by another thread. Therefore, it is non-conventional lock serving threads on the computing system.

FIG. 1 illustrates an example of a web-console scheme in a simple environment that includes a console host 1, a server 3, and a communication network 2. The console host 1 further includes a web-console 8 (browser). The server 3 includes a web-console 8, a web server software 4, and a console support software 5, wherein the console support software 5 further includes web server interface 6 and other service modules 7. It should be noted that the same reference indicators will be used throughout the drawings and the following description to refer to the same or like items.

The console host 1, from which a user is able to perform system tasks or operations for the server 3)through the web-console 8. The console host 1 can be any computing device (system) on the network 2, for example, it could be a server, a desktop pc, a laptop pc, a hand held PDA, or a cell phone. The web browser 8 may be commercially available software from any vendor or a proprietary software. The web browser 8 is able to handle the web protocol such as HTTP. The console host 1 may also include other software modules (9), which may be implemented with any suitable programming languages such as C, C++, Java, XML, et cetera. The other software modules 9 are used for communicating between the server 3 and the console host 1 using IP, non-IP or any suitable protocols for receiving and/or sending data between the console host 1 and said the server 3.

The server 3 could be a web server or any kind of computing system configured with web server software that includes web server software 4 and console supporting software 5. The console supporting software 5)includes web server interface 6 and other services software modules 7, wherein said other services software 7 operates on native server system. The web server software 4 may be commercially available software or proprietary software, which is able to accept and handle the web protocol such as HTTP. A native web-console (browser) 8 enables a user to access and operate the server computer locally.

Net 2 represents a network infrastructure such as internet and intranet, local area network (LAN) including all kinds of related network equipment and media such as switches/routers, different kind of cables and wireless media.

FIG. 2 shows an embodiment of a simplified block diagram of the CCDSVM. The CCDSVM includes a console hosts 1, a control management station 2, system units 3, a net1 11, a net2 12, and client systems 10. The console hosts 1 could be any computing system on the network such as a server, a desktop pc, a laptop pc, a hand held PDA, or a cell phone. A web-console (web browser) 9 can be used to access and operate the entire CCDSVM, where the web browser 9 may be commercially available software from any vendor or a proprietary software and is able to handle web protocol such as HTTP.

A difference between a web-console 9 and a web browser is that the web-console 9 allows user to access system information and perform system operation in the CCDSVM environment. The console host1 may also include other software modules 13, which may be implemented with any suitable programming languages such as C, C++, Java, XML etc. These software modules may be used to facilitate communications between the control management station 2 and the console host 1 using IP, non-IP or any suitable protocols for receiving or sending data between the console host 1 and the control management station 2. To support a non-web-based networked console, the software configured for console 9 is capable of handling protocols other than the web protocol such as HTTP and communicating with the console supporting software modules 6 on the control management station 2.

The control management station 2 could be any type of computing system with communication network capability such as a server, a desktop pc, a laptop pc, or others. The control management station 2 includes web server software 7 and console supporting software 6. The console supporting software 6 includes web server interface software modules 5 and control management software modules 4. It should be noted that the console supporting software 6 may include others service software modules. It may also have native web browser used as a web-console 9. The web server software 7 discussed earlier could be a commercially available software from a major vendor or a proprietary software, which is able to accept and handle the web protocol such as HTTP. The web server software 7 sends data to and receives data from web-console 9 of console hosts 1.

The console supporting software 6 can be implemented with any suitable languages such as C, C++, Java, XML, etc. Or even implemented by using a combination of different languages as long as it provides the features and functionality described in this invention. That means it is language independent. In addition, the communication protocol used between the console support software 6 and the service software modules 8 of the system units 3 could be any suitable protocol such IP based, or non-IP based or other protocols.

There may be several fixed threads being created based on the control management software modules 4. There are may be various number of threads that are created based on the web server interface software modules 5 for received each tasks initiated by a user via operation menu displayed in the web-console 9. All of these threads may be communicated with each other through inter-process communication and are simply referred as the thread of the console supporting software 6. However, to simplify the discussion, they may be just referred as the console supporting software 6 without mentioning the thread at all.

If there is a need to support a less effective non-web based networked console, there is no need for the web server software 7 and web server interfacing software module 5 to be employed. Instead, an additional network software module is required that could be implemented with any suitable programming language and any suitable communication protocol other than web protocol (HTTP). This network software module can communicate with a networked console software on the console host 1 via a communication network and communicate with the console supporting software 6 via inter-process communication mechanism.

The system unit 3 could be any computing system on the network such as a server, a desktop pc, a laptop pc, a hand held PDA, a cell phone. The server could be a video server, a web server, a storage block data server (san unit), a video monitoring device, and so forth without limits. The system unit 3 contains service software modules 8, which are capable of communicating with the outside world. For example, the service modules 8 is used to communicate with the control management software (4) of the control management station 2 for carrying out the tasks distributed from the control management station 2, or to communicate with the clients 10 of the CCDSVM for delivering services to them, or to communicate with another system unit 3 for transferring the data. The service software modules 8 could be implemented with any suitable programming languages such as c, c++, java, or others. It should be noted that the communication protocol could be any suitable protocol such as IP (internet protocol) base or other non-IP based protocol.

The net1 11 comprises any kind of communication links between the control management station 2 the web-console 9 or the client hosts 10. The net1 11 could be an infrastructure of Internet, Intranet, LAN, or others that comprises connection media such as cable (Ethernet, optical fiber, and other), wireless media, bus, and includes communication equipment such as switches, routers, and/or adapters.

The net2 12 is also a communication infrastructure of Internet, Intranet, LAN, or other network comprising communication media and equipment similar to net1 11 except it represents communication network between the control management station 2 and the system units 3 or the web-consoles 9.

The client systems 10 are not part of the CCDSVM but they may requests services from the CCDSVM, as shown in FIG. 2. The role of client systems and the connections between the client system 10 and system unit 3 will not be described in this invention since they are irrelevant to this invention.

FIG. 3 illustrates a simplified data flow between the web-console 9 on the console host 1 of FIG. 2 and the console supporting software 6 on the control management station 2 of FIG. 2. Data travels from the web-console 9 to the console supporting software 6 includes two steps. First, data goes from the web-console 9 to the web server software 7 via the net11 or net 12. Second, the console supporting software 6 gets data from the web server software 7 via inter-process communication. To simplify the discussion of this invention, this data traveling path will simply refer to as the console supporting software 6 getting data from the web-console 9 or refer to as the data being sent from the web-console 9 to the console supporting software 6.

Data travels from the console supporting software 6 to the web-console 9 includes two reverse steps. First, the web server software 7 gets data from the console supporting software 6 via inter-process communication. Second, the web server software 7 sends data to the web-console 9 via network 11 or 12. To simplify the rest discussion in this invention, this reverse data traveling will refer to as data being sent from the console supporting software 6 to the web-console 9 or refer to as the web-console 9 gets data from the console supporting software 6. The terms data, information, and information on a web page will be used interchangeably herein.

FIG. 4 shows the basic tasks and operation processing flow chart, which initiated from the web-console 9.

FIG. 5 shows a user space task list. Each slot on the user space task list can be used to store a task information relating to a task issued from the web-console 9. The store task information in the slot is removed upon the task execution is finished.

FIG. 6 illustrates one embodiment of a layered CCDSVM environment, which provides a flexible scalability mechanism to efficiently support thousands of heterogeneous system units 3. With this structure, a control management station 2 at middle layer 2 becomes a system unit 3 of another up layer control management station 2.

FIG. 7 illustrates typical hardware components for a computing system such as for the control management system 2, system units 3, and console hosts 1. The typical hardware consists of one or more CPU, memory, secondary storage such as disk drives and memory sticks, the network interface cards, and display components such as monitor or others. These components are connected internally through buses.

The detailed explanation of FIG. 2 will demonstrate how multiple concurrent tasks can be initiated from a web-console (9 of FIG. 2) and can be executed either on any one of the system units 3 and/or on the control management station 2 according to this invention.

In one example, a user at a web-console 9 receives an authentication from the console supporting software 6. In one embodiment, a successfully login the control management station 3 is considered an authentication because it authorizes user a to access the CCDSVM. Therefore, the user has obtained all necessary information of the system units 3 and the control management station 2 from the console supporting software 6. When the user initiates a task for a selected target system, which is either a system unit 3 or the control management station 2, the task information is transmitted via network 11 or 12 from the web-console 9 2 to the console support software 6 on the control management station 2.

A thread is created based on the console support software 6, wherein the thread will serve and carry out this task in background. The created thread acquires a lock and stores the task information into a valid entry on a user level task list as shown in the FIG. 5 and. This not only ensures that multiple tasks can be initiated concurrently within the same web-console 9 without delaying, effecting or block each other, but also prevent possible races between multiple tasks submitted from multiple web-consoles 9 by multiple simultaneous users anywhere across communication networks of the net11 or net12. The obtained locks for this task will be properly released one at a time along with the task execution up to a point when the task is finally finished. Therefore, each task could be executed without time delay. Also, the stored task information will be removed upon the execution of the task is finished.

If total tasks initiated from the web-console 9 have succeeded the maximum tasks allowed by the console supporting software 6, the initiated task will fail. The locks will be released by the corresponding thread and the user on the web-console 9 will be notified correspondingly.

If an existing task is in a stage of changing a resource object on a target system and if a newly created task will make changing on the same resource object on that target system, the newly initiated task may fail or may have to wait until the previous task is finished. Further, if a task is failed, the locks associated with the task will be release by the thread and the user a on the web-console 9 will be notified by the console support software 6 via the communication network of net11 or net12.

The credential of executing a specific task on a specific target system submitted by a user is checked. In addition, ordinary users' access & operation permissions and credentials are setup by administrator with supervisor or special privileges in the CCDSVM environment. If the user a is not permitted to perform any task on the specific target system or is not permitted to perform such task on any one of the computing systems in the CCDSVM, the task execution will fail and the user will be notified. Otherwise, the task will be carried out by the corresponding thread on the target system, which is either a control management station 2 or a system unit 3. If there is a need, the console supporting software 6 will send results or data back to the web-console 9. When a task is failed nor succeeded, the threads of console supporting software 6 will release the locks acquired for this task.

If the task needs to be executed on the control management station 2, the thread created based on the console supporting software 6 will carry out this task. The threads of the console support software 6 also need to determine if they need to create another thread to execute this task. If there is a need, another thread will be created to execute this task. Once the task is finished, the corresponding locks will be released by the console supporting software 6.

If a task needs to be executed on a system unit 3, the console supporting software 6 will transmit the task information via the communication network of the net2 12 to the service software module 8 of the target system unit 3. The thread based on the service software module 8 of the target system unit 3 will carry out this task. The service software modules 8 on the target system unit 3 will determine if an additional thread needs to be created in order to execute the task. If there is a need, an additional thread is created to execute this task. Once the task is finished on the target system unit 3, the corresponding status of the task execution is transmitted back to the console supporting software 6 of the control management station 2. Upon receiving the task finished status, the locks associated with the thread of the console support software 6 for that task are released.

The Task Issued from Web-Console:

The multiple concurrent tasks issued from a web-console 9 by a user could be any of the followings:

-   -   a) move or transmit data such as a multiple gigabytes of file or         other data in any form from any point or any computing system to         another point or computing system within the CCDSVM.     -   b) configure, partition and assign entire storage system         (raid/disk) within the CCDSVM.     -   c) setup authentication of a specific user from a web-console on         a specific console host 1 with certain privilege for the entire         CCDSVM or for a specific computing system, which could be any         system unit 3 or a control management station 2. Setting up the         authentication for any specific services on specific system         units 3.     -   d) monitor and display activities and status for networks,         storage, CPUs, processes and threads in the CCDSVM.     -   e) create file system, file and directory structures, and all         other related data file operations either on the control         management system 2 or on system units 3.     -   f) and all other types of tasks and operations that might be run         in other os (operating system) environment.

The capability of providing user with the multiple concurrent simultaneous operations and tasks on the web console 9 has indicated that this invention has created a web-based user work environment on top of an existing operating system of a single or multiple computer systems. Further, this is a consistent working environment for a computer system since it allows a user to access exact the same working environment through the web-console 9, which could be a web browser either located natively on the computer system or located on remote systems.

User Login

The user-login mechanism is also supported by the console supporting software 6. The web-console 9 obtains a login web page from the console supporting software 6 via the network 11 & 12. Once the user provides an account name and a password via the login page displayed on the web-console 9, the authentication information is sent to the console supporting software 6 for validation. Upon successful validating the user account and password information, the console support software 6 sends all necessary information to the web-console 9, where the information includes information of the control management station 2 and system units 3.

The Maximum Tasks

The maximum multiple concurrent simultaneous tasks that can be initiated from web-consoles are determined by the console support software modules 6, based on the needs and the capacity of the control management station 2.

The Credential Checking

The credential of a user includes the permission to access all or partial computing systems or a single computing system within the CCDSVM. The credential further includes the permission to run all tasks or partial tasks that are listed in the previous section of “the task issued from web-console”. It also includes the permission of accessing a specific size of storage volumes. For example, a user B may be granted a permission to run tasks on systems x, y, and z while another user C may be granted a permission to run tasks on entire system in the CCDSVM environment. The User C might be allow to get system status on the systems x, y, and z only while user B allows to run all tasks on systems x, y, and z. Each computing system mentioned herein could be a control management station 2 or any of system units 3. This basically represents a two-level authentication policy and checking. The first level is the security imposed by the control management station 2 and the second level is the security imposed by the system units 3.

The Web-Server Interface Software Modules:

The web-server interfacing software modules 5 is responsible to get information from or send information to the web server software 7 o and interacts with the control management modules 4 via inter-process communication; and the web-server interfacing software modules 5 communicates with the service modules 8 of the system unit 3 via the net2 12.

The Control Management Software Modules:

The control management module 4 on the control management station 2 is responsible for communicating with the system units 3 for sending data to or receiving data from the system units 3 via the net2 12. It also provides information of the system units 3 to the web interface software modules 5 of the control management station 2 via an inter-process communication mechanism.

The Layered CCDSVM Structure:

To be more efficiently support multiple concurrent tasks over a larger number of the system units 3, the CCDSVM can be organized into a multi-layer structure as illustrated in FIG. 6. With this layered structure, the CCDSVM can be sub-divided into different groups. For example, each one of level-2 control management stations could function as both the control management station 2 to the system units 3 below it and could also function as a system unit 3 for level-1 control management station 2. Therefore, the level-2 control management station must configured with related software modules for both the control management station 2 and for the system units 3. 

1-41. (canceled)
 42. A computer program product, tangibly stored in a non-transitory computer readable medium, comprising computer readable program instructions, when executed by a computing device for the computing device to control web based tasks, the computer program product comprising: program instructions for a native operating system (hereinafter “NOS”) being operable to manage computer resources and to allow other programs to execute and use the resources on the computing device; program instructions for a web browser being used for retrieving, displaying, and traversing information resources on the world wide web or on the computing device; and program instructions for a web based computer user interactive work environment (hereinafter “WCUWE”), being operable to the NOS and to the web browser, for controlling to submit execution for each of the tasks initiated via the information resources displayed on the computing device without interfering with the web browser displaying.
 43. The program product of claim 42, wherein said controlling submission of execution for each of one or more tasks further comprising program instructions to activate a web multitasking support mechanism for processing each task by: storing information of the task into a user space task list; executing the task in background, and providing a response to the web browser regardless of whether the task execution is completed or not; and cleaning up the stored information of the task upon the completion of executing the task; wherein the web multitasking support mechanism invokes at least a lock to protect the processing of the task.
 44. The program product of claim 43, wherein said executing the task further comprises program instructions for: validating permission of the task before executing the task, and program instructions for obtaining status of the task execution.
 45. The program product of claim 43, wherein said executing the task comprises program instructions for: sending the task to a server across the world wide web for further execution when the task requests to access an information resource on the server, or executing the task on the computing device when the task requests to access an information resource on the computing device.
 46. The program product of claim 45, wherein the server executes the task received from the computing device and sends, in accordance to the task, a result to the computing device when the result is required.
 47. The program product of claim 42, wherein said controlling submission of executing each of one or more tasks further comprising: allowing to submit at least a second one of the tasks immediately following a submission of a first one of the tasks without waiting for completion of executing the first one of the tasks.
 48. The program product of claim 47, wherein said one or more tasks comprises at least a task to access a streaming video on a server across the world wide web.
 49. The program product of claim 47, wherein said one or more tasks comprises at least a task to access an assigned storage space of a predefine capacity on a server across the world wide web.
 50. The program product of claim 47, further comprising program instruction for the web based computer user interactive environment to configure a web user interface (“UI”) to be displayed vi the web browser in response to a requirement of locally accessing information resources on the computing device.
 51. The program product of claim 47, wherein said one or more tasks comprises at least a task to create a file folder in a storage space of the computing device.
 52. The program product of claim 51, wherein said one or more tasks comprises: performing operations to a file being stored in a storage space including to moving or transfer the file to another location.
 53. A web operating system operable to a computing device that connects to a network and is configured with at least a hardware processor, a network interface, a native operating system (hereinafter “NOS”), a web browser, and a web based computer user interactive works environment (hereinafter “WCUWE”), the web operating system being a computer program product, tangibly stored in a non-transitory computer-readable medium, comprising computer readable program instructions, when executed by the computing device for the computing device to control web based tasks, the web operating system comprising: program instructions for a native operating system (hereinafter “NOS”) being operable to manage computer resources and to allow other computer programs to execute and use the resources on the computing device; program instructions for a web browser being used for retrieving, displaying, and traversing information resources on the world wide web or on the computing device; and program instructions for a web based computer user interactive work environment (hereinafter “WCUWE”), being operable to the NOS and to the web browser, for controlling to submit execution for each of the tasks initiated via the information resources displayed on the computing device without interfering with the web browser displaying.
 54. A computing device configured with a web operating system to control web based tasks, the computing device comprising: at least a hardware processor, a network interface, and a web operating system, the web operating system being a computer program product, tangibly stored in non-transitory computer readable medium of the computing device, comprising computer readable program instructions, including program instructions for a native operating system (“NOS”), program instructions for a web browser, and program instructions for a web based computer user interactive work environment (“WCUWE”), the web operating system when executed by the computing device, configures the computing device to: execute a web browser to retrieve and display information resources, and control submitting execution for each of the tasks initiated via the information resources displayed on the computing device without blocking the web browser displaying information resources on the computing device.
 55. The computing device of claim 54, wherein said retrieving and displaying of information resources comprises retrieving and displaying information resources on the world wide web.
 56. The computing device of claim 54, wherein said retrieving and displaying of information resources comprises retrieving and displaying information resources on the computing device.
 57. The computing device of claim 54, wherein said control submitting execution for each of the tasks further comprises: activating a web multitasking support mechanism for processing each task by: storing information of the task into a user space task list; processing the task in background, and providing a response to the web browser regardless of whether the task execution is completed or not; and cleaning up the stored information of the task upon the completion of executing the task; wherein the web multitasking support mechanism invokes at least a lock to protect the processing of each task.
 58. The computing device of claim 54, wherein said processing the task in background comprises: sending the task to a server across the world wide web for further execution when the task requests accessing an information resource on the server, or executing the task on the computing device when the task requests accessing an information resource on the computing device.
 59. The computing device of claim 58, wherein the server executes the task received from the computing device and sends, in accordance to the task, a result to the computing device when the result is required.
 60. The computing device of claim 54, wherein said submitting execution for each of the tasks further comprising: allowing to submit at least a second one of the tasks, immediately following a submission of a first one of the tasks, without waiting for completion of executing the first one of the tasks.
 61. The computing device of claim 54, further comprising to configure a web user interface (“UI”) to be displayed via the web browser in response to a requirement of locally accessing an information resource on the computing device. 